Multi-level Debugging for Multi-stage, Parallelizing Compilers
نویسندگان
چکیده
A multi-stage compilation framework transforms portions of programs written in a productivity-level language into an efficiency-level language, such as C, with explicit hardwarespecific optimizations. It is challenging for compiler programmers to debug errors in the compilation because they must perform complicated end-to-end reasoning, relating the programs across the multiple stages of compilation. To simplify this debugging effort, we present multi-level debugging, a novel combination of error-checking algorithms in a multi-stage compilation environment. Our method particularly aims to model and check sequential and parallel notions of nondeterminism and related bugs introduced by the compilation. Using our method, the programmer can systematically eliminate potential sources of the bug in the compilation process and focus only on the real source. We demonstrated on two real multi-stage compilers the effectiveness of multi-stage debugging in simplifying the diagnosis of manually-injected bugs as well as in an actual bug encountered during compiler development.
منابع مشابه
Limits on Thread-Level Speculative Parallelism in Embedded Applications
As multi-core microprocessors are becoming widely adopted, the need to extract thread-level parallelism from sequential single-threaded applications in a seamless fashion increases. In this paper, we study the limits of performance speedup for embedded applications using parallelizing compilers on platforms with and without support for thread-level speculation. First and somewhat expected, only...
متن کاملDeriving Compilers and Virtual Machines for a Multi-level Language
We develop virtual machines and compilers for a multi-level language, which supports multi-stage specialization by composing program fragments with quotation mechanisms. We consider two styles of virtual machines—ones equipped with special instructions for code generation and ones without—and show that the latter kind can deal with, more easily, low-level code generation, which avoids the overh...
متن کاملjParalize – a simple, free and lightweight tool for parallelizing Matlab calculations on multicores and in clusters
We present a very simple, reliable, efficient and free tool for parallelizing calculations under Matlab in multicore and cluster environments. It does not use any compilers, MEX files, disk files, etc.. It is compatible with old Paralize package, but allows the involved cores/machines to do other jobs when a server is not busy.
متن کاملjPar - a simple, free and lightweight tool for parallelizing Matlab calculations on multicores and in clusters
We present a very simple, free tool for parallelizing calculations under Matlab in multicore and cluster environments. After the installation it does not use any compilers, MEX files, disk files, etc. It is compatible with the old Paralize package, but allows the involved cores/machines to do other jobs when a worker core/machine is not busy.
متن کاملCompilation Techniques Specific for a Hardware Cryptography-Embedded Multimedia Mobile Processor
The development of single chip VLSI processors is the key technology of ever growing pervasive computing to answer overall demands for usability, mobility, speed, security, etc. We have so far developed a hardware cryptography-embedded multimedia mobile processor architecture, HCgorilla. Since HCgorilla integrates a wide range of techniques from architectures to applications and languages, one-...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012